*Does School Debating Reduce Vulnerability to Misinformation? A Field Experiment in Poland
*Authors: Krzysztof Krakowski, Bernhard Clemm von Hohenberg, Davide Morisi
*Journal: The Journal of Politics

*This file replicates the following:
*All figures and tables in the paper and in the appendix (excluding Appendix F and Figure D1)

*31 January 2025

*ssc install coefplot

*working directory
cd "[insert your directory]"

*open data
use "data/misinformation_recode.dta", clear

global PathRES = "tables/"

*demographics
global demo1 "i.female i.mother_edu i.age_cat hh_size_rec"
global demo2 "i.female i.mother_edu i.age_cat hh_size_rec i.financial4 i.religiosity3 i.right_wing"

*********

*
*Table C1. Attrition checks
eststo clear
eststo, title("(1)"): logit completed i.treat_bin, cl(school)
eststo, title("(2)"): logit completed i.treat_bin $demo1, cl(school)
eststo, title("(3)"): logit completed i.treat_bin $demo2, cl(school)
eststo, title("(4)"): logit completed i.treat_bin $demo2 true_trust_pre_all01 false_trust_pre_all01 conspiracy_pre01, cl(school)
eststo, title("(5)"): logit completed i.treat_bin##i.right_wing i.female i.mother_edu i.age_cat hh_size_rec i.financial4 i.religiosity3  true_trust_pre_all01 false_trust_pre_all01 conspiracy_pre01, cl(school)
*fully interacted model 6
tab age_cat, gen(age_cat_cat)
tab financial4, gen(financial4_cat)
tab religiosity3, gen(religiosity3_cat)
foreach var of varlist female mother_edu ///
age_cat_cat2 age_cat_cat3 age_cat_cat4 financial4_cat2 financial4_cat3 financial4_cat4 religiosity3_cat2 religiosity3_cat3 ///
hh_size_rec right_wing ///
true_trust_pre_all01 false_trust_pre_all01 conspiracy_pre01{
	sum `var', meanonly
	gen mean`var' = `var' - r(mean)
	gen int2`var' = treat_bin * mean`var'
}
global demo_attrition "meanfemale meanmother_edu meanage_cat_cat2 meanage_cat_cat3 meanage_cat_cat4 meanhh_size_rec meanfinancial4_cat2 meanfinancial4_cat3 meanfinancial4_cat4 meanreligiosity3_cat2 meanreligiosity3_cat3 meanright_wing int2female int2mother_edu int2age_cat_cat2 int2age_cat_cat3 int2age_cat_cat4 int2hh_size_rec int2financial4_cat2 int2financial4_cat3 int2financial4_cat4 int2religiosity3_cat2 int2religiosity3_cat3 int2right_wing"
eststo, title("(6)"): logit completed i.treat_bin $demo_attrition meantrue_trust_pre_all01 meanfalse_trust_pre_all01 meanconspiracy_pre01 ///
int2true_trust_pre_all01 int2false_trust_pre_all01 int2conspiracy_pre01, cl(school)
*table
esttab using "${PathRES}TableC1.rtf", ///
b(%6.3f) se(%6.3f) starlevels(* .1 ** .05 *** .01)  scalars (r2) ///
title("Table C1") compress noeqlines replace ///
note("Note: Regression of completing both Wave 1 and Wave 3 (vs. not completing). Estimates are log odds with standard errors in parentheses")


*
*Figure C1. Analysis of attrition rate (interactions between treatment and baseline covariates)
label variable int2female "Debate x Female"
label variable int2mother_edu "Debate x Mother edu."
label variable int2age_cat_cat2 "Debate x Age 15"
label variable int2age_cat_cat3 "Debate x Age 16"
label variable int2age_cat_cat4 "Debate x Age 17"
label variable int2financial4_cat2 "Debate x Finance average"
label variable int2financial4_cat3 "Debate x Finance not good"
label variable int2financial4_cat4 "Debate x Finance N/A"
label variable int2religiosity3_cat2 "Debate x Relig. important"
label variable int2religiosity3_cat3 "Debate x Relig. N/A"
label variable int2hh_size_rec "Debate x HH size"
label variable int2right_wing "Debate x Right-wing"
label variable int2true_trust_pre_all01 "Debate x Trust true (pre)"
label variable int2false_trust_pre_all01 "Debate x Trust false (pre)"
label variable int2conspiracy_pre01	"Debate x Conspiracy (pre)"
coefplot, keep(int*) xline(0) xtitle("Probability of completing (vs. not completing) post-survey")


***
*Keep only people who completed the panel
use "data/misinformation_recode_panel.dta", clear

global demo1int "i.treat_bin##c.cfemale i.treat_bin##c.cmother_edu i.treat_bin##c.cage_cat_cat2 i.treat_bin##c.cage_cat_cat3 i.treat_bin##c.cage_cat_cat4 i.treat_bin##c.chh_size_rec"

global demo2int "i.treat_bin##c.cfemale i.treat_bin##c.cmother_edu i.treat_bin##c.cage_cat_cat2 i.treat_bin##c.cage_cat_cat3 i.treat_bin##c.cage_cat_cat4 i.treat_bin##c.chh_size_rec i.treat_bin##c.cfinancial4_cat2 i.treat_bin##c.cfinancial4_cat3 i.treat_bin##c.cfinancial4_cat4 i.treat_bin##c.creligiosity3_cat2 i.treat_bin##c.creligiosity3_cat3 i.treat_bin##c.cright_wing"


*
*Table C2. Summary statistics
fre female mother_edu right_wing
ta age_cat, gen(age_cat_cat)
ta financial4, gen(financial_cat)
ta religiosity3, gen(relig_cat)
ta treat_bin, gen(treat_cat)
*table
eststo clear
estpost sum female mother_edu age_cat_cat* ///
financial_cat* hh_size_rec relig_cat* right_wing ///
pre_trust_media01 pre_need_pca01 ///
true_trust_pre_all01 false_trust_pre_all01 false_true_pre_all01 conspiracy_pre01 ///
true_trust_all01 false_trust_all01 false_true_all01 conspiracy01 ///
treat_cat*
esttab using "${PathRES}TableC2.rtf", cells("count mean sd min max") note("Note: only respondents who completed both Wave 1 and Wave 3") replace
drop age_cat_cat* financial_cat* relig_cat* treat_cat*


*
*Table C3. Balance checks
eststo clear
eststo, title("(1)"): logit treat_bin $demo1, cl(school) 
eststo, title("(2)"): logit treat_bin $demo2, cl(school)
eststo, title("(3)"): logit treat_bin $demo2 true_trust_pre_all01 false_trust_pre_all01 conspiracy_pre01, cl(school) 
*table
esttab using "${PathRES}TableC3.rtf", ///
b(%6.3f) se(%6.3f) starlevels(* .1 ** .05 *** .01)  scalars (r2) ///
title("Table C3. Balance checks") compress noeqlines wide replace ///
note("Note: Logistic regressions of being assigned to debate condition (vs. control). Estimates are log odds")


*
*Table C4. Average treatment effects. Outcome = credibility of true statements
eststo clear
eststo: reg true_trust_all01 i.treat_bin, cl(school) 
eststo: reg true_trust_all01 i.treat_bin $demo1int, cl(school) 
eststo: reg true_trust_all01 i.treat_bin $demo2int, cl(school) 
eststo: reg true_trust_all01 i.treat_bin $demo2int i.treat_bin##c.ctrue_trust_pre_all01_imp true_trust_pre_all01_mis, cl(school) 
eststo: reg true_trust_all01 i.treat_bin $demo2int i.treat_bin##c.ctrue_trust_pre_all01_imp true_trust_pre_all01_mis, cl(workshop) 
*table
esttab using "${PathRES}TableC4.rtf", ///
b(%6.3f) se(%6.3f) starlevels(* .1 ** .05 *** .01)  scalars (r2) ///
title("Table C4. Average treatment effects on credibility of true statements") compress noeqlines replace ///
note("OLS regressions with standard errors in parentheses. Standard errors clustered at the school level." ///
"Dependent variable: average belief in true statements; values rescaled from 0 (totally no credible) to 1 (totally credible)")
*effects on standardized DV
egen st_true_trust_all01 = std(true_trust_all01)
egen st_true_trust_pre_all01_imp = std(true_trust_pre_all01_imp)
eststo clear
eststo: reg st_true_trust_all01 treat_bin, cl(school) 
eststo: reg st_true_trust_all01 treat_bin $demo1int, cl(school) 
eststo: reg st_true_trust_all01 treat_bin $demo2int, cl(school) 
eststo: reg st_true_trust_all01 treat_bin $demo2int i.treat_bin##c.ctrue_trust_pre_all01_imp true_trust_pre_all01_mis, cl(school) 
eststo: reg st_true_trust_all01 treat_bin $demo2int i.treat_bin##c.ctrue_trust_pre_all01_imp true_trust_pre_all01_mis, cl(workshop) 
esttab using "${PathRES}TableC4_st.rtf", ///
b(%6.3f) se(%6.3f) starlevels(* .1 ** .05 *** .01) replace scalars (r2) keep(treat_bin)


*
*Table C5. Average treatment effects. Outcome = credibility of false statements
eststo clear
eststo: reg false_trust_all01 i.treat_bin, cl(school) 
eststo: reg false_trust_all01 i.treat_bin $demo1int, cl(school) 
eststo: reg false_trust_all01 i.treat_bin $demo2int, cl(school) 
eststo: reg false_trust_all01 i.treat_bin $demo2int i.treat_bin##c.cfalse_trust_pre_all01_imp false_trust_pre_all01_mis, cl(school)
eststo: reg false_trust_all01 i.treat_bin $demo2int i.treat_bin##c.cfalse_trust_pre_all01_imp false_trust_pre_all01_mis, cl(workshop)
*table
esttab using "${PathRES}TableC5.rtf", ///
b(%6.3f) se(%6.3f) starlevels(* .1 ** .05 *** .01)  scalars (r2) ///
title("Table C5. Average treatment effects on credibility of false statements") compress noeqlines replace ///
note("OLS regressions with standard errors in parentheses. Standard errors clustered at the school level." ///
"Dependent variable: average belief in false statements; values rescaled from 0 (totally no credible) to 1 (totally credible)")
*effects on standardized DV
egen st_false_trust_all01 = std(false_trust_all01)
egen st_false_trust_pre_all01_imp = std(false_trust_pre_all01_imp)
eststo clear
eststo: reg st_false_trust_all01 treat_bin, cl(school) 
eststo: reg st_false_trust_all01 treat_bin $demo1int, cl(school) 
eststo: reg st_false_trust_all01 treat_bin $demo2int, cl(school) 
eststo: reg st_false_trust_all01 treat_bin $demo2int i.treat_bin##c.cfalse_trust_pre_all01_imp false_trust_pre_all01_mis, cl(school) 
eststo: reg st_false_trust_all01 treat_bin $demo2int i.treat_bin##c.cfalse_trust_pre_all01_imp false_trust_pre_all01_mis, cl(workshop) 
esttab using "${PathRES}TableC5_st.rtf", ///
b(%6.3f) se(%6.3f) starlevels(* .1 ** .05 *** .01) replace scalars (r2) keep(treat_bin)


*
*Table C6. Average treatment effects. Outcome = credibility of true vs. false statements
eststo clear
eststo: reg false_true_all01 i.treat_bin, cl(school) 
eststo: reg false_true_all01 i.treat_bin $demo1int, cl(school) 
eststo: reg false_true_all01 i.treat_bin $demo2int, cl(school) 
eststo: reg false_true_all01 i.treat_bin $demo2int i.treat_bin##c.cfalse_true_pre_all01_imp false_true_pre_all01_mis, cl(school) 
eststo: reg false_true_all01 i.treat_bin $demo2int i.treat_bin##c.cfalse_true_pre_all01_imp false_true_pre_all01_mis, cl(workshop) 
*table
esttab using "${PathRES}TableC6.rtf", ///
b(%6.3f) se(%6.3f) starlevels(* .1 ** .05 *** .01)  scalars (r2) ///
title("Table C6. Average treatment effects on credibility of true vs. false statements") compress noeqlines replace ///
note("OLS regressions with standard errors in parentheses. Standard errors clustered at the school level." ///
"Dependent variable: average belief in true versus false statements; values rescaled from -1 to 1," ///
"with positive values indicating that true statements are more credible than false statements (and vice versa for negative values)")
*effects on standardized DV
egen st_false_true_all01 = std(false_true_all01)
egen st_false_true_pre_all01_imp = std(false_true_pre_all01_imp)
eststo clear
eststo: reg st_false_true_all01 treat_bin, cl(school) 
eststo: reg st_false_true_all01 treat_bin $demo1int, cl(school) 
eststo: reg st_false_true_all01 treat_bin $demo2int, cl(school) 
eststo: reg st_false_true_all01 treat_bin $demo2int i.treat_bin##c.cfalse_true_pre_all01_imp false_true_pre_all01_mis, cl(school) 
eststo: reg st_false_true_all01 treat_bin $demo2int i.treat_bin##c.cfalse_true_pre_all01_imp false_true_pre_all01_mis, cl(workshop) 
esttab using "${PathRES}TableC6_st.rtf", ///
b(%6.3f) se(%6.3f) starlevels(* .1 ** .05 *** .01) replace scalars (r2) keep(treat_bin)


*
*Table C7. Average treatment effects. Outcome = agreement with conspiracy theory
eststo clear
eststo: reg conspiracy01 i.treat_bin, cl(school) 
eststo: reg conspiracy01 i.treat_bin $demo1int, cl(school) 
eststo: reg conspiracy01 i.treat_bin $demo2int, cl(school) 
eststo: reg conspiracy01 i.treat_bin $demo2int i.treat_bin##c.cconspiracy_pre01_imp conspiracy_pre01_mis, cl(school) 
eststo: reg conspiracy01 i.treat_bin $demo2int i.treat_bin##c.cconspiracy_pre01_imp conspiracy_pre01_mis, cl(workshop) 
*table
esttab using "${PathRES}TableC7.rtf", ///
b(%6.3f) se(%6.3f) starlevels(* .1 ** .05 *** .01)  scalars (r2) ///
title("Table C7. Average treatment effects on agreement with conspiracy theories") compress noeqlines replace ///
note("OLS regressions with standard errors in parentheses. Standard errors clustered at the school level." ///
"Dependent variable: average agreement with conspiracy statements; values rescaled from 0 (strongly disagree) to 1 (strongly agree)")
*effects on standardized DV
egen st_conspiracy01 = std(conspiracy01)
egen st_conspiracy_pre01_imp = std(conspiracy_pre01_imp)
eststo clear
eststo: reg st_conspiracy01 treat_bin, cl(school) 
eststo: reg st_conspiracy01 treat_bin $demo1int, cl(school) 
eststo: reg st_conspiracy01 treat_bin $demo2int, cl(school) 
eststo: reg st_conspiracy01 treat_bin $demo2int i.treat_bin##c.cconspiracy_pre01_imp conspiracy_pre01_mis, cl(school) 
eststo: reg st_conspiracy01 treat_bin $demo2int i.treat_bin##c.cconspiracy_pre01_imp conspiracy_pre01_mis, cl(workshop) 
esttab using "${PathRES}TableC7_st.rtf", ///
b(%6.3f) se(%6.3f) starlevels(* .1 ** .05 *** .01) replace scalars (r2) keep(treat_bin)


****
*Figure 2: Predicted outcome levels by treatment conditions.
*Based on models 5 in tables C4-C7
eststo clear
*table C4
reg true_trust_all01 i.treat_bin $demo2int i.treat_bin##c.ctrue_trust_pre_all01_imp true_trust_pre_all01_mis, cl(workshop) 
eststo true_trust: margins treat_bin, post
*table C5
reg false_trust_all01 i.treat_bin $demo2int i.treat_bin##c.cfalse_trust_pre_all01_imp false_trust_pre_all01_mis, cl(workshop)
eststo false_trust: margins treat_bin, post
*table C6
reg false_true_all01 i.treat_bin $demo2int i.treat_bin##c.cfalse_true_pre_all01_imp false_true_pre_all01_mis, cl(workshop) 
eststo true_false_gap: margins treat_bin, post
*table C7
reg conspiracy01 i.treat_bin $demo2int i.treat_bin##c.cconspiracy_pre01_imp conspiracy_pre01_mis, cl(workshop) 
eststo conspiracy: margins treat_bin, post
*A)
coefplot true_trust, vert level(95) title("A) Credibility of true statements") name(graph1, replace) graphregion(color(white)) ///
ytitle("Average credibility""(0=min, 1=max)") yscale(range(.3(.02).5)) ylabel(.3(.02).5) ///
text(.517 2 "*", color(gs2) orientation(horizontal))
*B)
coefplot false_trust, vert level(95) title("B) Credibility of false statements") name(graph2, replace) graphregion(color(white)) ///
ytitle("Average credibility""(0=min, 1=max)") yscale(range(.3(.02).5)) ylabel(.3(.02).5)
*C)
coefplot true_false_gap, vert level(95) title("C) Credibility of true vs. false statements") name(graph3, replace) graphregion(color(white))  /// 
ytitle("Average credibility gap""(-1=min, 1=max)") yscale(range(0(.02).2)) ylabel(0(.02).2) ///
text(.165 2 "**", color(gs2) orientation(horizontal))
*D)
coefplot conspiracy, vert level(95) title("D) Agreement with conspiracy theories") name(graph4, replace) graphregion(color(white))   ///
ytitle("Average agreement""(0=min, 1=max)") yscale(range(.3(.02).5)) ylabel(.3(.02).5) ///
text(.35 2 "*", color(gs2) orientation(horizontal))
*combined
graph combine graph1 graph2 graph3 graph4, graphregion(color(white))
*title("Average outcome levels by treatment conditions")
*graph export [your directory]figure2.eps, as(eps) 


***
*Table C8. Average effects by sub-group conditions
recode treat_all (0=0 "No activity") (1=1 "Public speaking") (2=3 "Debate polarizing") (3=2 "Debate neutral"), gen(treat_allr)
*ref. cat. = no debate
eststo clear
eststo, title("Trust truth"): reg true_trust_all01 i.treat_allr $demo2int i.treat_bin##c.ctrue_trust_pre_all01_imp true_trust_pre_all01_mis, cl(school) 
eststo, title("Trust false"): reg false_trust_all01 i.treat_allr $demo2int i.treat_bin##c.cfalse_trust_pre_all01_imp false_trust_pre_all01_mis, cl(school)
eststo, title("True-false gap"): reg false_true_all01 i.treat_allr $demo2int i.treat_bin##c.cfalse_true_pre_all01_imp false_true_pre_all01_mis, cl(school) 
eststo, title("Conspiracy"): reg conspiracy01 i.treat_allr $demo2int i.treat_bin##c.cconspiracy_pre01_imp conspiracy_pre01_mis, cl(school)
*table
esttab using "${PathRES}TableC8a.rtf", ///
b(%6.3f) se(%6.3f) starlevels(* .1 ** .05 *** .01)  scalars (r2) ///
compress noeqlines replace

*ref. cat. = public speaking
eststo clear
eststo, title("Trust truth"): reg true_trust_all01 ib1.treat_allr $demo2int i.treat_bin##c.ctrue_trust_pre_all01_imp true_trust_pre_all01_mis, cl(school) 
eststo, title("Trust false"): reg false_trust_all01 ib1.treat_allr $demo2int i.treat_bin##c.cfalse_trust_pre_all01_imp false_trust_pre_all01_mis, cl(school)
eststo, title("True-false gap"): reg false_true_all01 ib1.treat_allr $demo2int i.treat_bin##c.cfalse_true_pre_all01_imp false_true_pre_all01_mis, cl(school) 
eststo, title("Conspiracy"): reg conspiracy01 ib1.treat_allr $demo2int i.treat_bin##c.cconspiracy_pre01_imp conspiracy_pre01_mis, cl(school)
*table
esttab using "${PathRES}TableC8b.rtf", ///
b(%6.3f) se(%6.3f) starlevels(* .1 ** .05 *** .01)  scalars (r2) compress noeqlines replace

*ref. cat. = debate neutral
eststo clear
eststo, title("Trust truth"): reg true_trust_all01 ib2.treat_allr $demo2int i.treat_bin##c.ctrue_trust_pre_all01_imp true_trust_pre_all01_mis, cl(school) 
eststo, title("Trust false"): reg false_trust_all01 ib2.treat_allr $demo2int i.treat_bin##c.cfalse_trust_pre_all01_imp false_trust_pre_all01_mis, cl(school)
eststo, title("True-false gap"): reg false_true_all01 ib2.treat_allr $demo2int i.treat_bin##c.cfalse_true_pre_all01_imp false_true_pre_all01_mis, cl(school) 
eststo, title("Conspiracy"): reg conspiracy01 ib2.treat_allr $demo2int i.treat_bin##c.cconspiracy_pre01_imp conspiracy_pre01_mis, cl(school)
*table
esttab using "${PathRES}TableC8c.rtf", ///
b(%6.3f) se(%6.3f) starlevels(* .1 ** .05 *** .01)  scalars (r2) compress noeqlines replace


*
*Table C9. Average treatment effects on credibility of true/false statements, pre-registered selection of statements
*PANEL A. True statements
eststo clear
eststo: reg true_trust01 i.treat_bin, cl(school) 
eststo: reg true_trust01 i.treat_bin $demo1int, cl(school) 
eststo: reg true_trust01 i.treat_bin $demo2int, cl(school) 
eststo: reg true_trust01 i.treat_bin $demo2int i.treat_bin##c.ctrue_trust_pre01, cl(school) 
eststo: reg true_trust01 i.treat_bin $demo2int i.treat_bin##c.ctrue_trust_pre01, cl(workshop) 
*table
esttab using "${PathRES}TableC9_A.rtf", ///
b(%6.3f) se(%6.3f) starlevels(* .1 ** .05 *** .01)  scalars (r2) ///
title("Table C9. Average treatment effects on credibility of true statements - pre-registered items") compress noeqlines replace ///
note("OLS regressions with standard errors in parentheses. Standard errors clustered at the workshop level." ///
"Dependent variable: average belief in true statements; values rescaled from 0 (totally no credible) to 1 (totally credible)")
*effects on standardized DV
egen st_true_trust01 = std(true_trust01)
egen st_true_trust_pre01 = std(true_trust_pre01)
eststo clear
eststo: reg st_true_trust01 treat_bin, cl(school) 
eststo: reg st_true_trust01 treat_bin $demo1int, cl(school) 
eststo: reg st_true_trust01 treat_bin $demo2int, cl(school) 
eststo: reg st_true_trust01 treat_bin $demo2int i.treat_bin##c.st_true_trust_pre01, cl(school) 
eststo: reg st_true_trust01 treat_bin $demo2int i.treat_bin##c.st_true_trust_pre01, cl(workshop) 
esttab using "${PathRES}TableC9_Ast.rtf", ///
b(%6.3f) se(%6.3f) starlevels(* .1 ** .05 *** .01) replace scalars (r2) keep(treat_bin)

*PANEL B. False statements
eststo clear
eststo: reg false_trust01 i.treat_bin, cl(school) 
eststo: reg false_trust01 i.treat_bin $demo1int, cl(school) 
eststo: reg false_trust01 i.treat_bin $demo2int, cl(school) 
eststo: reg false_trust01 i.treat_bin $demo2int i.treat_bin##c.cfalse_trust_pre01, cl(school)
eststo: reg false_trust01 i.treat_bin $demo2int i.treat_bin##c.cfalse_trust_pre01, cl(workshop)
*table
esttab using "${PathRES}TableC9_B.rtf", ///
b(%6.3f) se(%6.3f) starlevels(* .1 ** .05 *** .01)  scalars (r2) ///
title("Table C9. Average treatment effects on credibility of false statements - pre-registered items") compress noeqlines replace ///
note("OLS regressions with standard errors in parentheses. Standard errors clustered at the workshop level." ///
"Dependent variable: average belief in false statements; values rescaled from 0 (totally no credible) to 1 (totally credible)")
*effects on standardized DV
egen st_false_trust01 = std(false_trust01)
egen st_false_trust_pre01 = std(false_trust_pre01)
eststo clear
eststo: reg st_false_trust01 treat_bin, cl(school) 
eststo: reg st_false_trust01 treat_bin $demo1int, cl(school) 
eststo: reg st_false_trust01 treat_bin $demo2int, cl(school) 
eststo: reg st_false_trust01 treat_bin $demo2int i.treat_bin##c.st_false_trust_pre01, cl(school) 
eststo: reg st_false_trust01 treat_bin $demo2int i.treat_bin##c.st_false_trust_pre01, cl(workshop) 
esttab using "${PathRES}TableC9_Bst.rtf", ///
b(%6.3f) se(%6.3f) starlevels(* .1 ** .05 *** .01) replace scalars (r2) keep(treat_bin)

*PANEL C. True vs. false statements
eststo clear
eststo: reg false_true_gap01 i.treat_bin, cl(school) 
eststo: reg false_true_gap01 i.treat_bin $demo1int, cl(school) 
eststo: reg false_true_gap01 i.treat_bin $demo2int, cl(school) 
eststo: reg false_true_gap01 i.treat_bin $demo2int i.treat_bin##c.cfalse_true_pre_gap01, cl(school) 
eststo: reg false_true_gap01 i.treat_bin $demo2int i.treat_bin##c.cfalse_true_pre_gap01, cl(workshop) 
*table
esttab using "${PathRES}TableC9_C.rtf", ///
b(%6.3f) se(%6.3f) starlevels(* .1 ** .05 *** .01)  scalars (r2) ///
title("Table C9. Average treatment effects on credibility of true vs. false statements - pre-registered items") compress noeqlines replace ///
note("OLS regressions with standard errors in parentheses. Standard errors clustered at the school level." ///
"Dependent variable: average belief in true versus false statements; values rescaled from -1 to 1," ///
"with positive values indicating that true statements are more credible than false statements (and vice versa for negative values)")
*effects on standardized DV
egen st_false_true_gap01 = std(false_true_gap01)
egen st_false_true_pre_gap01 = std(false_true_pre_gap01)
eststo clear
eststo: reg st_false_true_gap01 treat_bin, cl(school) 
eststo: reg st_false_true_gap01 treat_bin $demo1int, cl(school) 
eststo: reg st_false_true_gap01 treat_bin $demo2int, cl(school) 
eststo: reg st_false_true_gap01 treat_bin $demo2int i.treat_bin##c.st_false_true_pre_gap01, cl(school) 
eststo: reg st_false_true_gap01 treat_bin $demo2int i.treat_bin##c.st_false_true_pre_gap01, cl(workshop) 
esttab using "${PathRES}TableC9_Cst.rtf", ///
b(%6.3f) se(%6.3f) starlevels(* .1 ** .05 *** .01) replace scalars (r2) keep(treat_bin)


********************
*Appendix D. Compliance analyses

*
*Figure D1. Completion rate by city
*see separate do file

*
*Table D1. Debating and vulnerability to misinformation (observations from Gdańsk excluded)
eststo clear
eststo m1: reg false_true_all01 i.treat_bin $demo2int i.treat_bin##c.cfalse_true_pre_all01_imp false_true_pre_all01_mis if schoolen!=2 & schoolen!=17 & schoolen!=15, cl(school) 
eststo m2: reg conspiracy01 i.treat_bin $demo2int i.treat_bin##c.cconspiracy_pre01_imp conspiracy_pre01_mis if schoolen!=2 & schoolen!=17 & schoolen!=15, cl(school)
esttab m1 m2 using "${PathRES}TableD1.rtf", b(3) se(3) star(* 0.1 ** 0.05 *** 0.01) replace

*
*Table D2. Debating and vulnerability to misinformation (observations from school in the highest 10-percentile in terms of non-compliance rate)
bys school: egen noncompliance_school = mean(noncomplier) 
eststo clear
eststo m1: reg false_true_all01 i.treat_bin $demo2int i.treat_bin##c.cfalse_true_pre_all01_imp false_true_pre_all01_mis if noncompliance_school<.3, cl(school) 
eststo m2: reg conspiracy01 i.treat_bin $demo2int i.treat_bin##c.cconspiracy_pre01_imp conspiracy_pre01_mis if noncompliance_school<.3, cl(school)
esttab m1 m2 using "${PathRES}TableD2.rtf", b(3) se(3) star(* 0.1 ** 0.05 *** 0.01) replace

*
*Table D3. Debating and vulnerability to misinformation (observations from workshop sessions led by instructors in the highest 10-percentile in terms of non-compliance rate)
bys instructor: egen noncompliance_instructor = mean(noncomplier) 
eststo clear
eststo m1: reg false_true_all01 i.treat_bin $demo2int i.treat_bin##c.cfalse_true_pre_all01_imp false_true_pre_all01_mis if noncompliance_instructor<.3, cl(school) 
eststo m2: reg conspiracy01 i.treat_bin $demo2int i.treat_bin##c.cconspiracy_pre01_imp conspiracy_pre01_mis if noncompliance_instructor<.3, cl(school)
esttab m1 m2 using "${PathRES}TableD3.rtf", b(3) se(3) star(* 0.1 ** 0.05 *** 0.01) replace


**************
*Appendix E

*E1. Mediation analysis

*Preparing controls for mediation analysis
ta age_cat, gen(acat)
ta financial4, gen(fin) 
ta religiosity3, gen(relig) 
global demo3C "female mother_edu acat2 acat3 acat4 hh_size_rec fin2 fin3 fin4 relig2 relig3 right_wing false_true_pre_all01_imp false_true_pre_all01_mis"
global demo3D "female mother_edu acat2 acat3 acat4 hh_size_rec fin2 fin3 fin4 relig2 relig3 right_wing conspiracy_pre01_imp conspiracy_pre01_mis"

*
*Table E1. Analysis of potential mediators of treatment effects on credibility of true vs. false statements (IV regressions)
eststo clear
eststo, title("open mind"): ivregress 2sls false_true_all01 $demo3C (d_need_pca01 = treat_bin), cl(school) first 
eststo, title("trust"): ivregress 2sls false_true_all01 $demo3C (d_trust_media01 = treat_bin), cl(school) first 
eststo, title("interest"): ivregress 2sls false_true_all01 $demo3C (d_pol_int = treat_bin), cl(school) first 
eststo, title("discussion"):ivregress 2sls false_true_all01 $demo3C (d_discussion = treat_bin), cl(school) first 
esttab using "${PathRES}TableE1.rtf", ///
b(%6.3f) se(%6.3f) starlevels(* .1 ** .05 *** .01)  scalars (r2) compress noeqlines replace 
* Note: Coefficients in Panel A of the published table were manually transfered from the regression output of the first-stage regression printed in Stata (coefficients for "treat_bin" variable)

*
*Table E2. Analysis of potential mediators of treatment effects on agreement with conspiracy state-ments (IV regressions)
eststo clear
eststo, title("open mind"): ivregress 2sls conspiracy01 $demo3D (d_need_pca01 = treat_bin), cl(school) first 
eststo, title("trust"): ivregress 2sls conspiracy01 $demo3D (d_trust_media01 = treat_bin), cl(school) first 
eststo, title("interest"): ivregress 2sls conspiracy01 $demo3D (d_pol_int = treat_bin), cl(school) first 
eststo, title("discussion"):ivregress 2sls conspiracy01 $demo3D (d_discussion = treat_bin), cl(school) first 
esttab using "${PathRES}TableE2.rtf", ///
b(%6.3f) se(%6.3f) starlevels(* .1 ** .05 *** .01)  scalars (r2) compress noeqlines replace 
* Note: Coefficients in Panel A of the published table were manually transfered from the regression output of the first-stage regression printed in Stata (coefficients for "treat_bin" variable)

*E2. Heterogenous treatment effects

*Figure E1. Treatment effects on credibility of true (vs. false) statements by potential moderators

*Dichotomize moderators for easier interpretations
*High values = more open mindedness, high trust, high political interest, frequent discussion
*Open mindedness
xtile pre_need_pcadum = pre_need_pca01, nq(2)
label de lowhigh 1"Low" 2"High"
label val pre_need_pcadum lowhigh
*trust
gen pre_trust_mediadum = 1 if pre_trust_media01!=.
replace pre_trust_mediadum = 2 if pre_trust_media01>0.28
label val pre_trust_mediadum lowhigh
*interest in politics
gen pre_pol_intdum = 1 if pre_pol_int!=.
replace pre_pol_intdum = 2 if pre_pol_int>0.5
label val pre_pol_intdum lowhigh
*discussion
xtile pre_discussiondum = pre_discussion_rev, nq(2)
label val pre_discussiondum lowhigh

*
*Figure E1. Effects on true vs. false statements
eststo clear
*A) open mindedness
reg false_true_all01 i.treat_bin##i.pre_need_pcadum $demo2int i.treat_bin##c.cfalse_true_pre_all01_imp false_true_pre_all01_mis, cl(schoolen) 
eststo open_mind: margins pre_need_pcadum, dydx(treat_bin) post
coefplot open_mind, vert yline(0, lcolor(gs10) lpattern(dash)) ///
ytitle("Effect of debate (vs. no debate=0)") ///
xtitle("Open mindedness") level(90) graphregion(color(white)) name(graph1A,replace)
*B) trust
reg false_true_all01 i.treat_bin##i.pre_trust_mediadum $demo2int i.treat_bin##c.cfalse_true_pre_all01_imp false_true_pre_all01_mis, cl(schoolen) 
eststo trust: margins pre_trust_mediadum, dydx(treat_bin) post
coefplot trust, vert yline(0, lcolor(gs10) lpattern(dash)) ///
ytitle("") xtitle("Trust in the media") level(90) graphregion(color(white)) name(graph1B,replace)
*C) interest
reg false_true_all01 i.treat_bin##i.pre_pol_intdum $demo2int i.treat_bin##c.cfalse_true_pre_all01_imp false_true_pre_all01_mis, cl(schoolen) 
eststo pol_int: margins pre_pol_intdum, dydx(treat_bin) post
coefplot pol_int, vert yline(0, lcolor(gs10) lpattern(dash)) ///
text(.14 1 "*", color(gs2) orientation(horizontal) placement(2)) ///
ytitle("Effect of debate (vs. no debate=0)")  xtitle("Interest in politics") level(90) graphregion(color(white)) name(graph1C,replace)
*D) discussion
reg false_true_all01 i.treat_bin##i.pre_discussiondum $demo2int i.treat_bin##c.cfalse_true_pre_all01_imp false_true_pre_all01_mis, cl(schoolen) 
eststo discuss: margins pre_discussiondum, dydx(treat_bin) post
coefplot discuss, vert yline(0, lcolor(gs10) lpattern(dash)) ///
ytitle("")  xtitle("Frequency of discussion about politics") level(90) graphregion(color(white)) name(graph1D,replace)
*graph
graph combine graph1A graph1B graph1C graph1D, ycommon title("Effect of debate on credibility of true vs. false statements") graphregion(color(white))


*
*Figure E2. Treatment effects by on agreement with conspiracy statements by potential moderators
eststo clear
*A) open mindedness
reg conspiracy01 i.treat_bin##i.pre_need_pcadum $demo2int i.treat_bin##c.cconspiracy_pre01_imp conspiracy_pre01_mis, cl(schoolen) 
eststo open_mind: margins pre_need_pcadum, dydx(treat_bin) post
coefplot open_mind, vert yline(0, lcolor(gs10) lpattern(dash)) ///
ytitle("Effect of debate (vs. no debate=0)") ///
xtitle("Open mindedness") level(90) graphregion(color(white)) name(graph2A,replace)
*B) trust
reg conspiracy01 i.treat_bin##i.pre_trust_mediadum $demo2int i.treat_bin##c.cconspiracy_pre01_imp conspiracy_pre01_mis, cl(schoolen) 
eststo trust: margins pre_trust_mediadum, dydx(treat_bin) post
coefplot trust, vert yline(0, lcolor(gs10) lpattern(dash)) ///
ytitle("") xtitle("Trust in the media") level(90) graphregion(color(white)) name(graph2B,replace)
*C) interest
reg conspiracy01 i.treat_bin##i.pre_pol_intdum $demo2int i.treat_bin##c.cconspiracy_pre01_imp conspiracy_pre01_mis, cl(schoolen) 
eststo pol_int: margins pre_pol_intdum, dydx(treat_bin) post
coefplot pol_int, vert yline(0, lcolor(gs10) lpattern(dash)) ///
ytitle("Effect of debate (vs. no debate=0)")  xtitle("Interest in politics") level(90) graphregion(color(white)) name(graph2C,replace)
*D) discussion
reg conspiracy01 i.treat_bin##i.pre_discussiondum $demo2int i.treat_bin##c.cconspiracy_pre01_imp conspiracy_pre01_mis, cl(schoolen) 
eststo discuss: margins pre_discussiondum, dydx(treat_bin) post
coefplot discuss, vert yline(0, lcolor(gs10) lpattern(dash)) ///
text(-.03 2 "*", color(gs2) orientation(horizontal) placement(2)) ///
ytitle("")  xtitle("Frequency of discussion about politics") level(90) graphregion(color(white)) name(graph2D,replace)
*graph
graph combine graph2A graph2B graph2C graph2D, ycommon title("Effect of debate on agreement with conspiracy theories") graphregion(color(white))


